ExportBasinAverage Subroutine

public subroutine ExportBasinAverage(time, temp, tmean, tmax, tmin, precipitation, rh, radiation, netradiation, windspeed, daily_precipitation, irrigation, swe, sm, runoff, infiltration, percolation, et, pet, dsm, snowmelt, iwe, icemelt)

Export basin averaged values

Arguments

Type IntentOptional Attributes Name
type(DateTime), intent(in) :: time
type(grid_real), intent(in) :: temp

air temperarure (°C)

type(grid_real), intent(in) :: tmean

air temperarure daily mean(°C)

type(grid_real), intent(in) :: tmax

air temperarure daily max (°C)

type(grid_real), intent(in) :: tmin

air temperarure daily min (°C)

type(grid_real), intent(in) :: precipitation

precipitation rate (m/s)

type(grid_real), intent(in) :: rh

air relative humidity (0-100)

type(grid_real), intent(in) :: radiation

solar radiation (w/m2)

type(grid_real), intent(in) :: netradiation

net radiation (w/m2)

type(grid_real), intent(in) :: windspeed

wind speed (m/s)

type(grid_real), intent(in) :: daily_precipitation

daily precipitation rate (m/s)

type(grid_real), intent(in) :: irrigation

irrigation rate (m/s)

type(grid_real), intent(in) :: swe

snow water equivalent (m)

type(grid_real), intent(in) :: sm

soil mositure (-)

type(grid_real), intent(in) :: runoff

runoff (m/s)

type(grid_real), intent(in) :: infiltration

infiltration (m/s)

type(grid_real), intent(in) :: percolation

deep percolation (m/s)

type(grid_real), intent(in) :: et

actual evapotranspiration (m/s)

type(grid_real), intent(in) :: pet

potential evapotranspiration (m/s)

type(grid_real), intent(in) :: dsm

soil moisture variation (m)

type(grid_real), intent(in) :: snowmelt

snow melt (m)

type(grid_real), intent(in) :: iwe

ice water equivalent (m)

type(grid_real), intent(in) :: icemelt

ice melt (m)


Variables

Type Visibility Attributes Name Initial
integer(kind=short), public :: i
integer(kind=short), public :: j

Source Code

SUBROUTINE ExportBasinAverage   & 
!
 (time, temp, tmean, tmax, tmin, precipitation, &
  rh, radiation, netradiation, windspeed, daily_precipitation, &
  irrigation, swe, sm, runoff, infiltration, percolation, et, &
  pet, dsm, snowmelt, iwe, icemelt )  

IMPLICIT NONE

!arguments with intent in:  
TYPE (DateTime) , INTENT(IN) :: time
TYPE (grid_real), INTENT(IN) :: temp !!air temperarure (°C)
TYPE (grid_real), INTENT(IN) :: tmean !!air temperarure daily mean(°C)
TYPE (grid_real), INTENT(IN) :: tmax !!air temperarure daily max (°C)
TYPE (grid_real), INTENT(IN) :: tmin !!air temperarure daily min (°C)
TYPE (grid_real), INTENT(IN) :: precipitation !!precipitation rate (m/s)
TYPE (grid_real), INTENT(IN) :: rh !!air relative humidity (0-100)
TYPE (grid_real), INTENT(IN) :: radiation !!solar radiation (w/m2)
TYPE (grid_real), INTENT(IN) :: netradiation !!net radiation (w/m2)
TYPE (grid_real), INTENT(IN) :: windspeed !!wind speed (m/s)
TYPE (grid_real), INTENT(IN) :: daily_precipitation !!daily precipitation rate (m/s)
TYPE (grid_real), INTENT(IN) :: irrigation !!irrigation rate (m/s)
TYPE (grid_real), INTENT(IN) :: swe !!snow water equivalent (m)
TYPE (grid_real), INTENT(IN) :: sm !!soil mositure (-)
TYPE (grid_real), INTENT(IN) :: runoff !!runoff (m/s)
TYPE (grid_real), INTENT(IN) :: infiltration !!infiltration (m/s)
TYPE (grid_real), INTENT(IN) :: percolation !!deep percolation (m/s)
TYPE (grid_real), INTENT(IN) :: et !!actual evapotranspiration (m/s)
TYPE (grid_real), INTENT(IN) :: pet !!potential evapotranspiration (m/s)
TYPE (grid_real), INTENT(IN) :: dsm !!soil moisture variation (m)
TYPE (grid_real), INTENT(IN) :: snowmelt !!snow melt (m)
TYPE (grid_real), INTENT(IN) :: iwe !! ice water equivalent (m)
TYPE (grid_real), INTENT(IN) :: icemelt !! ice melt (m)
 

!local declarations
INTEGER (KIND = short) :: i, j

!-------------------------------end of declaration-----------------------------

!precipitation
IF ( varOut (1) ) THEN
    !cumulate variable
    CALL BasinCumulate ( precipitation, 1000. * dtBasinAverage )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesPrecipitation) 
    !set current time
    sitesPrecipitation % time = time
    !write data
    CALL WriteData (sitesPrecipitation, fileUnitPrecipitation ) 
END IF

!daily-precipitation
IF ( varOut (2) ) THEN
    !cumulate variable
    CALL BasinCumulate ( daily_precipitation, 1000. * 86400. )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesPrecipitationDaily) 
    !set current time
    sitesPrecipitationDaily % time = time
    !write data
    CALL WriteData (sitesPrecipitationDaily, fileUnitPrecipitationDaily ) 
END IF

!air temperature
IF ( varOut (3) ) THEN
    !cumulate variable
    CALL BasinCumulate ( temp )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesTemp) 
    !set current time
    sitesTemp % time = time
    !write data
    CALL WriteData (sitesTemp, fileUnitTemp ) 
END IF


!temperature-daily-mean
IF ( varOut (4) ) THEN
    !cumulate variable
    CALL BasinCumulate ( tmean )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesTmean) 
    !set current time
    sitesTmean % time = time
    !write data
    CALL WriteData (sitesTmean, fileUnitTmean ) 
END IF

!temperature-daily-max
IF ( varOut (5) ) THEN
    !cumulate variable
    CALL BasinCumulate ( tmax )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesTmax) 
    !set current time
    sitesTmax % time = time
    !write data
    CALL WriteData (sitesTmax, fileUnitTmax ) 
END IF


!temperature-daily-min
IF ( varOut (6) ) THEN
    !cumulate variable
    CALL BasinCumulate ( tmin )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesTmin) 
    !set current time
    sitesTmin % time = time
    !write data
    CALL WriteData (sitesTmin, fileUnitTmin ) 
END IF

!relative-humidity
IF ( varOut (7) ) THEN
    !cumulate variable
    CALL BasinCumulate ( rh )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesRH) 
    !set current time
    sitesRH % time = time
    !write data
    CALL WriteData (sitesRH, fileUnitRH ) 
END IF


!solar-radiation
IF ( varOut (8) ) THEN
    !cumulate variable
    CALL BasinCumulate ( radiation )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesRadiation) 
    !set current time
    sitesRadiation % time = time
    !write data
    CALL WriteData (sitesRadiation, fileUnitRadiation ) 
END IF

!net-radiation
IF ( varOut (9) ) THEN
    !cumulate variable
    CALL BasinCumulate ( netradiation )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesNetRadiation) 
    !set current time
    sitesNetRadiation % time = time
    !write data
    CALL WriteData (sitesNetRadiation, fileUnitNetRadiation ) 
END IF

!wind-speed
IF ( varOut (10) ) THEN
    !cumulate variable
    CALL BasinCumulate ( windspeed )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesWindSpeed) 
    !set current time
    sitesWindSpeed % time = time
    !write data
    CALL WriteData (sitesWindSpeed, fileUnitWindSpeed ) 
END IF

!irrigation
IF ( varOut (11) ) THEN
    !cumulate variable
    CALL BasinCumulate ( irrigation )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesIrrigation) 
    !set current time
    sitesIrrigation % time = time
    !write data
    CALL WriteData (sitesIrrigation, fileUnitIrrigation ) 
END IF

!snow water equivalent
IF ( varOut (12) ) THEN
    !cumulate variable
    CALL BasinCumulate ( swe, 1000. )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesSWE) 
    !set current time
    sitesSWE % time = time
    !write data
    CALL WriteData (sitesSWE, fileUnitSWE ) 
    
END IF

!soil moisture
IF ( varOut (13) ) THEN
    !cumulate variable
    CALL BasinCumulate ( sm )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesSM) 
    !set current time
    sitesSM % time = time
    !write data
    CALL WriteData (sitesSM, fileUnitSM ) 
END IF

!runoff
IF ( varOut (14) ) THEN
    !cumulate variable
    CALL BasinCumulate ( runoff, 1000. * dtBasinAverage )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesRunoff) 
    !set current time
    sitesRunoff % time = time
    !write data
    CALL WriteData (sitesRunoff, fileUnitRunoff ) 
END IF

!infiltration
IF ( varOut (15) ) THEN
    !cumulate variable
    CALL BasinCumulate ( infiltration, 1000. * dtBasinAverage )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesInfiltration) 
    !set current time
    sitesInfiltration % time = time
    !write data
    CALL WriteData (sitesInfiltration, fileUnitInfiltration ) 
END IF

!percolation
IF ( varOut (16) ) THEN
    !cumulate variable
    CALL BasinCumulate ( percolation, 1000. * dtBasinAverage )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesPercolation) 
    !set current time
    sitesPercolation % time = time
    !write data
    CALL WriteData (sitesPercolation, fileUnitPercolation ) 
END IF

!actual evapotranspiration
IF ( varOut (17) ) THEN
    !cumulate variable
    CALL BasinCumulate ( et, 1000. * dtBasinAverage )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesET) 
    !set current time
    sitesET % time = time
    !write data
    CALL WriteData (sitesET, fileUnitET ) 
END IF

!potential evapotranspiration
IF ( varOut (18) ) THEN
    !cumulate variable
    CALL BasinCumulate ( pet, 1000. * dtBasinAverage )
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesPET) 
    !set current time
    sitesPET % time = time
    !write data
    CALL WriteData (sitesPET, fileUnitPET ) 
END IF


!soil water storage variation
IF ( varOut (19) ) THEN
    !cumulate variable
    CALL BasinCumulate ( dsm, 1000.)
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesDSM) 
    !set current time
    sitesDSM % time = time
    !write data
    CALL WriteData (sitesDSM, fileUnitDSM ) 
END IF

!snow melt
IF ( varOut (20) ) THEN
    !cumulate variable
    CALL BasinCumulate ( snowmelt, 1000.)
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesSnowMelt) 
    !set current time
    sitesSnowMelt % time = time
    !write data
    CALL WriteData (sitesSnowMelt, fileUnitSnowMelt ) 
END IF

!ice water eqivalent
IF ( varOut (21) ) THEN
    !cumulate variable
    CALL BasinCumulate ( iwe, 1000.)
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesIWE) 
    !set current time
    sitesIWE % time = time
    !write data
    CALL WriteData (sitesIWE, fileUnitIWE ) 
END IF

!ice melt
IF ( varOut (22) ) THEN
    !cumulate variable
    CALL BasinCumulate ( icemelt, 1000.)
    !assign data to site network
    CALL AssignDataFromGrid ( cum, sitesIceMelt) 
    !set current time
    sitesIceMelt % time = time
    !write data
    CALL WriteData (sitesIceMelt, fileUnitIceMelt ) 
END IF

RETURN
END SUBROUTINE ExportBasinAverage